﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SeguroSoft.Models;
using SeguroSoft.Model.Model;

namespace SeguroSoft.Tests.Model
{
    /// <summary>
    /// Summary description for TestRepositorioServicioTecnico
    /// </summary>
    [TestClass]
    public class TestRepositorioServicioTecnico
    {

        RepositorioServicioTecnico rst;

        [TestInitialize]
        public void inicializar()
        {
            rst = new RepositorioServicioTecnico();

        }

        [TestMethod]
        public void Servicios_Tecnicos_No_Encontrados_Con_Parametros_Inexistentes()
        {

            var result = rst.EncontrarServicioTecnicoPorAño((2010).ToString());

            Assert.AreEqual(result.ToList().Count, 1);
        }

        [TestMethod]
        public void Todos_Los_Servicios_Tecnicos_Deberian_Ser_Encontrados()
        {
            

            var result = rst.EncontrarTodosServiciosTecnicos();

            Assert.AreEqual(result.ToList().Count, 4);
        }

        [TestMethod]
        public void Servicios_Tecnicos_Encontrados_Segun_Kilometraje()
        {

            var result = rst.EncontrarServicioTecnicoPorKilometraje((100000).ToString());

            Assert.IsInstanceOfType(result.ToList().ElementAt(0), typeof (ServicioTecnico));
        }

        [TestMethod]
        public void Servicios_Tecnicos_Encontrados_Segun_Tipo_Bencina()
        {
            

            var result = rst.EncontrarServicioTecnicoPorTipoBencina((97).ToString());

            Assert.AreEqual(result.ToList().Count, 100);
        }

        [TestMethod]
        public void Servicios_Tecnicos_Encontrados_Segun_Modelo()
        {
            

            var result = rst.EncontrarServicioTecnicoPorModelo("Enzo");

            Assert.AreEqual(result.ToList().Count, 0);
        }

        [TestMethod]
        public void Servicios_Tecnicos_Encontrados_Segun_Marca()
        {
            

            var result = rst.EncontrarServicioTecnicoPorMarca("Porsche");

            Assert.AreEqual(result.ToList().Count, 1);
        }

        [TestMethod]
        public void Servicios_Tecnicos_Encontrados_Segun_Motor()
        {
            

            var result = rst.EncontrarServicioTecnicoPorMotor((2.5).ToString());

            Assert.AreEqual(result.ToList().Count, 0);
        }

        [TestMethod]
        public void Servicio_Tecnico_Encontrado_Segun_Identificador()
        {
            

            var result = rst.ObtenerServicioTecnico(50);

            Assert.AreEqual(result.Km, "20000");
        }
    

    }
}
